package com.biz.primus.ms.product.feign;

import com.biz.primus.base.vo.ProductPromotionTagRespVo;
import com.biz.primus.base.vo.ProductSpecialOfferPromotionRespVo;
import com.biz.primus.base.vo.PromotionBasicInfoVo;
import com.biz.primus.model.promotion.vo.req.MultiProductSpecialOfferPriceReqVo;
import com.biz.primus.model.promotion.vo.req.ProductPromotionReqVo;
import com.biz.primus.model.promotion.vo.req.ProductPromotionTagReqVo;
import com.biz.primus.model.promotion.vo.req.SingleProductSpecialOfferPriceReqVo;
import com.biz.primus.ms.product.degraded.DegradedPromotionFeignClient;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * User: jiangnan
 * Description:
 */
@FeignClient(name = "service-promotion",fallback = DegradedPromotionFeignClient.class)
public interface PromotionFeignClient {

    /**
     * 简单特价
     * @param reqVo
     * @return
     */
    @PostMapping("soa/promotion/getProductSpecialOfferPromotion")
    List<ProductSpecialOfferPromotionRespVo> getProductSpecialOfferPromotion(@RequestBody MultiProductSpecialOfferPriceReqVo reqVo);

    /**
     * 简单特价
     * @param reqVo
     * @return
     */
    @PostMapping("soa/promotion/getProductSpecialOfferPromotion")
    ProductSpecialOfferPromotionRespVo getProductSpecialOfferPromotion(@RequestBody SingleProductSpecialOfferPriceReqVo reqVo);

    /**
     * 详情页促销详情
     * @param reqVo
     * @return
     */
    @PostMapping("soa/promotion/getProductPromotions")
    List<PromotionBasicInfoVo> getProductPromotions(@RequestBody ProductPromotionReqVo reqVo);

    /**
     * 列表页促销标签
     * @param reqVo
     * @return
     */
    @PostMapping("soa/promotion/getProductPromotionTags")
    List<ProductPromotionTagRespVo> getProductPromotionTags(@RequestBody ProductPromotionTagReqVo reqVo);


}
